package com.smartleanx.module.hrm.controller.admin.employee.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 员工调动 Request VO
 *
 * @author tengcj
 * @since 2024-05-17
 */
@Schema(description = "管理后台 - 员工调动 Request VO")
@Data
public class EmployeeChangePostSaveReqVO {

    @Schema(description = "员工id")
    private Long employeeId;

    @Schema(description = "变动类型 4 转正 5调岗 6晋升 7降级 8转为全职员工")
    private Integer changeType;

    @Schema(description = "异动原因 1 组织架构调整 2个人申请 3 工作安排 4 违规违纪 5 绩效不达标 6 个人身体原因 7 不适应当前岗位")
    private Integer changeReason;

    @Schema(description = "原部门")
    private Long oldDeptId;

    @Schema(description = "新部门")
    private Long newDeptId;

    @Schema(description = "原岗位")
    private Long oldPostId;

    @Schema(description = "新岗位")
    private Long newPostId;

    @Schema(description = "旧职级")
    private Long oldPostLevel;

    @Schema(description = "新职级")
    private Long newPostLevel;

    @Schema(description = "原员工状态")
    private Integer oldEmployeeState;

    @Schema(description = "备注")
    private String remarks;

    // @Schema(description = "原工作地点")
    // private String oldWorkAddress;
    //
    // @Schema(description = "新工作地点")
    // private String newWorkAddress;

    @Schema(description = "生效时间")
    @NotNull(message = "生效时间不能为空")
    private LocalDateTime effectTime;

    @Schema(description = "申请文件id列表")
    private List<Long> applyFileIdList;

    @Schema(description = "其他文件id列表")
    private List<Long> otherFileIdList;
}
